IDEs

This is a list and short description of strengths and weaknesses of various IDEs for python you might come across. Feel free to add your name if you use one of these. Lots of people seem to prefer simply using a good text editor (see below), but IDEs definitely have some benefits (e.g. integrated consoles, debuggers, integrated git, etc.). Here's a long list of Python IDEs.

Pycharm

Pycharm is reasonably new, but a few people in the lab really like it.

Strengths

  • Works really well with minimal configuration tweaking
  • Has a really good debugger and profiler
  • Code completion and analysis runs faster than in other editors
  • Lower learning curve if you're not used to the Command Line
  • Awesome code refactoring tools
  • Cross-platform

Weaknesses

  • Still has a bit of a learning curve.
  • Some really weird keyboard shortcuts if you're used to other editors. Sean recommends just using his settings repository which uses Sublime-like shortcuts.
  • Should not be used for developing Nengo GUI, given it takes forever to process TypeScript files.

People who use it

  • Sean

Spyder

Spyder is included in anaconda so you may already have it installed.

Strengths

  • TBD

Weaknesses

  • TBD

People who use it

  • TBD

Visual Studio

Microsoft released an extension for Python for visual studio.

Strengths

  • TBD

Weaknesses

  • TBD

People who use it

  • Pete Suma

Editors

Hopefully this won't turn into a flame war :) but here are some opinions on strengths and weakness of editors that people around the lab use. Feel free to add your name if you use one of these.

TextWrangler

This is a solid text editor for Mac that's very customizable and free.

Strengths

  • TBD

Weaknesses

  • TBD

People who use it

  • Chris

Visual Studio Code

Strengths

  • Very fast
  • Excellent TypeScript support

Weaknesses

  • TBD

People who use it

  • Sean for Nengo GUI

Sublime

Cross-platform text editor.

Strengths

  • TBD

Weaknesses

  • Really annoying to install extensions for
  • Extensions are of wildly varying quality
  • Pop-up reminding you to buy a license

People who use it

  • Xuan
  • Sean (as a fallback from PyCharm)
  • Peter Duggins

Emacs

Cross-platform text editor.

Strengths

  • Can give you god-like coding powers [citation needed]

Weaknesses

  • Can give you RSI from the shortcuts [citation needed]

People who use it

  • Eric Hunsberger
  • Trevor

Vim

Cross-platform text editor.

Strengths

  • Can give you god-like coding powers [citation needed]
  • Pretty much any Unix system will have a Vi (predecessor to Vim with reduced functionality) installed and it will often be the default editor unless you change it. (Though this might be more a weakness of Unix systems than a strength of Vim?)
  • Undo branches

Weaknesses

  • Difficult to learn (Sean has tried on three seperate occasions unsuccessfully)

How to learn

  • Vimcasts is a collection short, high quality screen casts.
  • Type vimtutor in your terminal.

Recommendations for users

Plugin recommendations

  • Vundle: Best Vim plugin manager in my (Jan's) opinion
  • Command-T: Insanely fast file navigation (btw: the t shortcut on Github is very similar)
  • Fugitive: Great Git plugin
  • Gundo: Most intuitive way to use the undo branches
  • LaTeX-Box: Light-weight Latex plugin
  • The NERD Commenter: Quickly comment and uncomment blocks of code
  • vim-surround: Quickly replace one type of parenthesis/brackets/braces/quotes/... with another
  • Syntastic: The syntax checking plugin
  • YouCompleteMe: Best code completion plugin

People who use it

  • Terry
  • Brent
  • Ivana
  • Jan

Syntax color schemes

  • Solarized: Beatiful and well thought out color scheme, provided for a large number of editors. Has a light and a dark version.

In [ ]: